// rollup的配置
import path from 'path'
import json from '@rollup/plugin-json';
import ts from 'rollup-plugin-typescript2'
import resolvePlugin from '@rollup/plugin-node-resolve'


// 根据环境变量中的target属性 获取对应模块中的 pakcage.json
const packagesDir = path.resolve(__dirname,'packages')
const packageDir = path.resolve(packagesDir,process.env.TARGET)

//  永远针对的是某个模块
const resolve = (p)=>path.resolve(packageDir,p)

const pkg = require(resolve('package.json'))
const name = path.basename(packageDir); //当前路径最后的名字

// 对打包类型 先做一个映射表，根据你提供的formats 来格式化需要打包的内容
const outputConfig = { // 自定义的
    'esm-bundler':{
        file: resolve(`dist/${name}.esm-bundler.js`),
        format:'es'
    },
    'cjs':{
        file:resolve(`dist/${name}.cjs.js`),
        format:'cjs'
    },
    'global':{
        file:resolve(`dist/${name}.global.js`),
        format:'iife' // 立即执行函数
    }
}
const options = pkg.buildOptions // 自己在package.json中定义的选项 

function createConfig(format,output) {
    // console.log(format)
    output.name = options.name ; 
    output.sourcemap = true ;
     return {
         input:resolve('src/index.ts'),
         output,
         plugins:[
             json(),
             ts(),
             resolvePlugin()
         ]

     }

}
export default options.formats.map(format=>createConfig(format,outputConfig[format]))
